"""
目前掌握了解：计算机中图像的存储 就是 一个三维数组/思维数组
三维数组 [高度, 宽度, 通道数]
    [256, 256, 3]   表示是一张256x256的彩色图
    [200, 180, 1]   表示是一张180x200的灰色图
四维数组 [批次, 高度, 宽度, 通道数]
    [8, 256, 256, 3]    表示8张256x256的彩色图
"""
import numpy as np
import matplotlib.pyplot as plt

# 一张图 就是 一个三维数组
# 定义 (700, 700, 3) 的数组
# uint8 u表示unsigned无符号  int表示整数 8表示位数
# 8位无符号整数   取值范围是[0, 255]
img_arr = np.zeros((700, 700, 3), dtype=np.uint8)

# 利用切片进行绘图
# 1. 在黑色底色上绘制白色线条--平分7份每份是100px
# 2. 在对角线处绘制 100x100 大小的红色色块
for i in range(0, 700, 100):
    for j in range(0, 700, 100):
        img_arr[i, :, :] = (255, 255, 255)
        img_arr[:, j, :] = (255, 255, 255)
        if i != 0 and i != 600 and j != 0 and j != 600:
            if i == j or i + j == 600:
                img_arr[i:i + 100, j:j + 100, :] = (255, 0, 0)

# 先来准备三张图，用于存储分离出来的图像
img_red = np.zeros_like(img_arr, dtype="u1")
img_green = np.zeros_like(img_arr, dtype="u1")
img_blue = np.zeros_like(img_arr, dtype="u1")

# 分离通道
img_red[:, :, 0] = img_arr[:, :, 0]
img_green[:, :, 1] = img_arr[:, :, 1]
img_blue[:, :, 2] = img_arr[:, :, 2]

plt.subplot(232), plt.imshow(img_arr), plt.axis("off")
plt.subplot(234), plt.imshow(img_red), plt.axis("off")
plt.subplot(235), plt.imshow(img_green), plt.axis("off")
plt.subplot(236), plt.imshow(img_blue), plt.axis("off")
plt.show()
